function xq(){
    return new Promise((resolve,reject) => {
       setTimeout(() =>{
           console.log('周圣相亲成功');
            resolve()// 成功状态
            // reject()
       },1000)
    })
}

function marry(){
    return new Promise((resolve,reject) => {
      setTimeout(() =>{
        console.log('周圣结婚');
        resolve()
      },2000)
    })
}
function baby(){
    setTimeout(() =>{
      console.log('小周出生');
    },500)
}

// xq()
// .then(() =>{
//     marry().then(()=>{
//         baby()
//     })
// })
// .catch(() =>{
//     console.log('相亲失败');
// })

//1. 执行 xq 函数，立即返回一个promise 实例对象，但是此时该对象的状态是pending（等待状态）
//2. .then 立即触发，但是.then里面的回调函数没有触发
//3. 等待 xq 函数resolve()执行完毕，此时实例对象的状态会变更为 fulfilled(成功状态)，此时.then 里面的回调函数回触发执行

//换种写法 
xq()//里面执行到了 resolve()
.then(() =>{// then 的源码里面也返回了一个 promise 实例对象，状态默认继承自 xq 函数返回的对象的状态
    return marry()
})
.then(() =>{//保证第一个 then 返回的对象状态继承于marry 函数返回的对象状态
    baby()
})
.catch(() =>{
    console.log('失败');
})